<!-- HTML header for doxygen 1.8.20-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	<meta name="generator" content="Doxygen 1.9.4"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<title>Raspberry Pi Pico SDK: sm_config</title>
	<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="dynsections.js"></script>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
	<link href="doxygen.css" rel="stylesheet" type="text/css" />
	<link href="normalise.css" rel="stylesheet" type="text/css"/>
<link href="main.css" rel="stylesheet" type="text/css"/>
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
	<div class="navigation-mobile">
		<div class="logo--mobile">
			<a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
		</div>
		<div class="navigation-toggle">
			<span class="line-1"></span>
			<span class="line-2">
				<p>Menu Toggle</p>
			</span>
			<span class="line-3"></span>
		</div>
	</div>
	<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
		<div class="logo">
			<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
			<span style="display: inline-block; margin-top: 10px;">
				v2.0.0
			</span>
		</div>
		<div class="navigation-footer">
			<img src="logo-mobile.svg" alt="Raspberry Pi">
			<a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
		</div>
<!-- 		<div class="search">
			<form>
				<input type="search" name="search" id="search" placeholder="Search">
				<input type="submit" value="Search">
			</form>
		</div> -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__sm__config.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">sm_config<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a> &raquo; <a class="el" href="group__hardware__pio.html">hardware_pio</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>PIO state machine configuration.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpio__sm__config.html">pio_sm_config</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">PIO Configuration structure.  <a href="structpio__sm__config.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1dbca28933c083592e6e359effe250bf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">sm_config_set_out_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base)</td></tr>
<tr class="memdesc:ga1dbca28933c083592e6e359effe250bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#ga1dbca28933c083592e6e359effe250bf">More...</a><br /></td></tr>
<tr class="separator:ga1dbca28933c083592e6e359effe250bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade3d072e319fc7d10bec180a9692ea89"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">sm_config_set_out_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_count)</td></tr>
<tr class="memdesc:gade3d072e319fc7d10bec180a9692ea89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the number of 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gade3d072e319fc7d10bec180a9692ea89">More...</a><br /></td></tr>
<tr class="separator:gade3d072e319fc7d10bec180a9692ea89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3004bbd996443d0c841664ebc92905c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">sm_config_set_out_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint out_base, uint out_count)</td></tr>
<tr class="memdesc:gaf3004bbd996443d0c841664ebc92905c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'out' pins in a state machine configuration.  <a href="group__sm__config.html#gaf3004bbd996443d0c841664ebc92905c">More...</a><br /></td></tr>
<tr class="separator:gaf3004bbd996443d0c841664ebc92905c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40d4807c0665d30ceab153b7444560eb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">sm_config_set_set_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base)</td></tr>
<tr class="memdesc:ga40d4807c0665d30ceab153b7444560eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga40d4807c0665d30ceab153b7444560eb">More...</a><br /></td></tr>
<tr class="separator:ga40d4807c0665d30ceab153b7444560eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">sm_config_set_set_pin_count</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_count)</td></tr>
<tr class="memdesc:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the count of 'set' pins in a state machine configuration.  <a href="group__sm__config.html#ga78e129fe383f2af0fc5e1448dea4c3d6">More...</a><br /></td></tr>
<tr class="separator:ga78e129fe383f2af0fc5e1448dea4c3d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada1dff2c00b7d3a1cf722880c8373424"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">sm_config_set_set_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint set_base, uint set_count)</td></tr>
<tr class="memdesc:gada1dff2c00b7d3a1cf722880c8373424"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'set' pins in a state machine configuration.  <a href="group__sm__config.html#gada1dff2c00b7d3a1cf722880c8373424">More...</a><br /></td></tr>
<tr class="separator:gada1dff2c00b7d3a1cf722880c8373424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">sm_config_set_in_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
<tr class="memdesc:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gaaf804a05a2ebaa127d0d216b3d4e3e80">More...</a><br /></td></tr>
<tr class="separator:gaaf804a05a2ebaa127d0d216b3d4e3e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac418400e30520ea3961d8977c180a4f9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">sm_config_set_in_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint in_base)</td></tr>
<tr class="memdesc:gac418400e30520ea3961d8977c180a4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base fpr the 'in' pins in a state machine configuration.  <a href="group__sm__config.html#gac418400e30520ea3961d8977c180a4f9">More...</a><br /></td></tr>
<tr class="separator:gac418400e30520ea3961d8977c180a4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7abfda1f60c62565d5b13536b0605af7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
<tr class="memdesc:ga7abfda1f60c62565d5b13536b0605af7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the base of the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">More...</a><br /></td></tr>
<tr class="separator:ga7abfda1f60c62565d5b13536b0605af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">sm_config_set_sideset_pins</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint sideset_base)</td></tr>
<tr class="memdesc:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' pins in a state machine configuration.  <a href="group__sm__config.html#gad55bf8b410fa1d13bd1bd020587e01d7">More...</a><br /></td></tr>
<tr class="separator:gad55bf8b410fa1d13bd1bd020587e01d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf543422206a8dbdc2efea85818dd650e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">sm_config_set_sideset</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint bit_count, bool optional, bool pindirs)</td></tr>
<tr class="memdesc:gaf543422206a8dbdc2efea85818dd650e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'sideset' options in a state machine configuration.  <a href="group__sm__config.html#gaf543422206a8dbdc2efea85818dd650e">More...</a><br /></td></tr>
<tr class="separator:gaf543422206a8dbdc2efea85818dd650e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga365abc6d25301810ca5ee11e5b36c763"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga365abc6d25301810ca5ee11e5b36c763">sm_config_set_clkdiv_int_frac</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint16_t div_int, uint8_t div_frac)</td></tr>
<tr class="memdesc:ga365abc6d25301810ca5ee11e5b36c763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration.  <a href="group__sm__config.html#ga365abc6d25301810ca5ee11e5b36c763">More...</a><br /></td></tr>
<tr class="separator:ga365abc6d25301810ca5ee11e5b36c763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8c09c7a4372da95ad777faae51c5a24"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">sm_config_set_clkdiv</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, float div)</td></tr>
<tr class="memdesc:gae8c09c7a4372da95ad777faae51c5a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state machine clock divider (from a floating point value) in a state machine configuration.  <a href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24">More...</a><br /></td></tr>
<tr class="separator:gae8c09c7a4372da95ad777faae51c5a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb753e8b35bbea9209ca4399a845f89c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">sm_config_set_wrap</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint wrap_target, uint wrap)</td></tr>
<tr class="memdesc:gafb753e8b35bbea9209ca4399a845f89c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the wrap addresses in a state machine configuration.  <a href="group__sm__config.html#gafb753e8b35bbea9209ca4399a845f89c">More...</a><br /></td></tr>
<tr class="separator:gafb753e8b35bbea9209ca4399a845f89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">sm_config_set_jmp_pin</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, uint pin)</td></tr>
<tr class="memdesc:gaf2bfc66d6427ff92519e38dcb611133b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the 'jmp' pin in a state machine configuration.  <a href="group__sm__config.html#gaf2bfc66d6427ff92519e38dcb611133b">More...</a><br /></td></tr>
<tr class="separator:gaf2bfc66d6427ff92519e38dcb611133b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">sm_config_set_in_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopush, uint push_threshold)</td></tr>
<tr class="memdesc:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'in' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#gaed7a6e7dc4f1979c7c62e4773df8c79b">More...</a><br /></td></tr>
<tr class="separator:gaed7a6e7dc4f1979c7c62e4773df8c79b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">sm_config_set_out_shift</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool shift_right, bool autopull, uint pull_threshold)</td></tr>
<tr class="memdesc:ga613bed03e10e569f1b7aede74d40a5b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup 'out' shifting parameters in a state machine configuration.  <a href="group__sm__config.html#ga613bed03e10e569f1b7aede74d40a5b5">More...</a><br /></td></tr>
<tr class="separator:ga613bed03e10e569f1b7aede74d40a5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafea1a06362182514518ebd91b2d52fd5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">sm_config_set_fifo_join</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a> join)</td></tr>
<tr class="memdesc:gafea1a06362182514518ebd91b2d52fd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Setup the FIFO joining in a state machine configuration.  <a href="group__sm__config.html#gafea1a06362182514518ebd91b2d52fd5">More...</a><br /></td></tr>
<tr class="separator:gafea1a06362182514518ebd91b2d52fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a9141ceadf9e735b1e96457865de3f6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#ga8a9141ceadf9e735b1e96457865de3f6">sm_config_set_out_special</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, bool sticky, bool has_enable_pin, uint enable_pin_index)</td></tr>
<tr class="memdesc:ga8a9141ceadf9e735b1e96457865de3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set special 'out' operations in a state machine configuration.  <a href="group__sm__config.html#ga8a9141ceadf9e735b1e96457865de3f6">More...</a><br /></td></tr>
<tr class="separator:ga8a9141ceadf9e735b1e96457865de3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">sm_config_set_mov_status</a> (<a class="el" href="structpio__sm__config.html">pio_sm_config</a> *c, enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a> status_sel, uint status_n)</td></tr>
<tr class="memdesc:gacd24870944ce2f00f3f7847bb3e5d543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set source for 'mov status' in a state machine configuration.  <a href="group__sm__config.html#gacd24870944ce2f00f3f7847bb3e5d543">More...</a><br /></td></tr>
<tr class="separator:gacd24870944ce2f00f3f7847bb3e5d543"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2d2a23b08ba74188160469b3fd09936"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">pio_get_default_sm_config</a> (void)</td></tr>
<tr class="memdesc:gaf2d2a23b08ba74188160469b3fd09936"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the default state machine configuration.  <a href="group__sm__config.html#gaf2d2a23b08ba74188160469b3fd09936">More...</a><br /></td></tr>
<tr class="separator:gaf2d2a23b08ba74188160469b3fd09936"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >PIO state machine configuration. </p>
<p >A PIO block needs to be configured, these functions provide helpers to set up configuration structures. See <a class="el" href="group__hardware__pio.html#ga28e9a84f3332ebf088f665d4b676117b">pio_sm_set_config</a> </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf2d2a23b08ba74188160469b3fd09936" name="gaf2d2a23b08ba74188160469b3fd09936"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2d2a23b08ba74188160469b3fd09936">&#9670;&nbsp;</a></span>pio_get_default_sm_config()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structpio__sm__config.html">pio_sm_config</a> pio_get_default_sm_config </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the default state machine configuration. </p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Setting   </th><th class="markdownTableHeadNone">Default    </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Out Pins   </td><td class="markdownTableBodyNone">32 starting at 0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Set Pins   </td><td class="markdownTableBodyNone">0 starting at 0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">In Pins (base)   </td><td class="markdownTableBodyNone">0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Side Set Pins (base)   </td><td class="markdownTableBodyNone">0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Side Set   </td><td class="markdownTableBodyNone">disabled    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Wrap   </td><td class="markdownTableBodyNone">wrap=31, wrap_to=0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">In Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopush=false, push_threshold=32    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Out Shift   </td><td class="markdownTableBodyNone">shift_direction=right, autopull=false, pull_threshold=32    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Jmp Pin   </td><td class="markdownTableBodyNone">0    </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Out Special   </td><td class="markdownTableBodyNone">sticky=false, has_enable_pin=false, enable_pin_index=0    </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Mov Status   </td><td class="markdownTableBodyNone">status_sel=STATUS_TX_LESSTHAN, n=0   </td></tr>
</table>
<dl class="section return"><dt>Returns</dt><dd>the default state machine configuration which can then be modified. </dd></dl>

</div>
</div>
<a id="gae8c09c7a4372da95ad777faae51c5a24" name="gae8c09c7a4372da95ad777faae51c5a24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8c09c7a4372da95ad777faae51c5a24">&#9670;&nbsp;</a></span>sm_config_set_clkdiv()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_clkdiv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>div</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the state machine clock divider (from a floating point value) in a state machine configuration. </p>
<p >The clock divider slows the state machine's execution by masking the system clock on some cycles, in a repeating pattern, so that the state machine does not advance. Effectively this produces a slower clock for the state machine to run from, which can be used to generate e.g. a particular UART baud rate. See the datasheet for further detail.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">div</td><td>The fractional divisor to be set. 1 for full speed. An integer clock divisor of n will cause the state machine to run 1 cycle in every n. Note that for small n, the jitter introduced by a fractional divider (e.g. 2.5) may be unacceptable although it will depend on the use case. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga365abc6d25301810ca5ee11e5b36c763" name="ga365abc6d25301810ca5ee11e5b36c763"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga365abc6d25301810ca5ee11e5b36c763">&#9670;&nbsp;</a></span>sm_config_set_clkdiv_int_frac()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_clkdiv_int_frac </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>div_int</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>div_frac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the state machine clock divider (from integer and fractional parts - 16:8) in a state machine configuration. </p>
<p >The clock divider can slow the state machine's execution to some rate below the system clock frequency, by enabling the state machine on some cycles but not on others, in a regular pattern. This can be used to generate e.g. a given UART baud rate. See the datasheet for further detail.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">div_int</td><td>Integer part of the divisor </td></tr>
    <tr><td class="paramname">div_frac</td><td>Fractional part in 1/256ths </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__sm__config.html#gae8c09c7a4372da95ad777faae51c5a24" title="Set the state machine clock divider (from a floating point value) in a state machine configuration.">sm_config_set_clkdiv()</a> </dd></dl>

</div>
</div>
<a id="gafea1a06362182514518ebd91b2d52fd5" name="gafea1a06362182514518ebd91b2d52fd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafea1a06362182514518ebd91b2d52fd5">&#9670;&nbsp;</a></span>sm_config_set_fifo_join()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_fifo_join </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356">pio_fifo_join</a>&#160;</td>
          <td class="paramname"><em>join</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup the FIFO joining in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">join</td><td>Specifies the join type. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga7d415b966abbc1c25315d0775d093356" title="FIFO join states.">pio_fifo_join</a> </dd></dl>

</div>
</div>
<a id="gaaf804a05a2ebaa127d0d216b3d4e3e80" name="gaaf804a05a2ebaa127d0d216b3d4e3e80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf804a05a2ebaa127d0d216b3d4e3e80">&#9670;&nbsp;</a></span>sm_config_set_in_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>in_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'in' pins in a state machine configuration. </p>
<p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">in_base</td><td>0-31 First pin to use as input </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac418400e30520ea3961d8977c180a4f9" name="gac418400e30520ea3961d8977c180a4f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac418400e30520ea3961d8977c180a4f9">&#9670;&nbsp;</a></span>sm_config_set_in_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>in_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base fpr the 'in' pins in a state machine configuration. </p>
<p >'in' pins can overlap with the 'out', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">in_base</td><td>0-31 First pin to use as input </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaed7a6e7dc4f1979c7c62e4773df8c79b" name="gaed7a6e7dc4f1979c7c62e4773df8c79b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed7a6e7dc4f1979c7c62e4773df8c79b">&#9670;&nbsp;</a></span>sm_config_set_in_shift()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_in_shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>shift_right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autopush</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>push_threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup 'in' shifting parameters in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">shift_right</td><td>true to shift ISR to right, false to shift ISR to left </td></tr>
    <tr><td class="paramname">autopush</td><td>whether autopush is enabled </td></tr>
    <tr><td class="paramname">push_threshold</td><td>threshold in bits to shift in before auto/conditional re-pushing of the ISR </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf2bfc66d6427ff92519e38dcb611133b" name="gaf2bfc66d6427ff92519e38dcb611133b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2bfc66d6427ff92519e38dcb611133b">&#9670;&nbsp;</a></span>sm_config_set_jmp_pin()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_jmp_pin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>pin</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'jmp' pin in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">pin</td><td>The raw GPIO pin number to use as the source for a <code>jmp pin</code> instruction </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gacd24870944ce2f00f3f7847bb3e5d543" name="gacd24870944ce2f00f3f7847bb3e5d543"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd24870944ce2f00f3f7847bb3e5d543">&#9670;&nbsp;</a></span>sm_config_set_mov_status()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_mov_status </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e">pio_mov_status_type</a>&#160;</td>
          <td class="paramname"><em>status_sel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>status_n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set source for 'mov status' in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">status_sel</td><td>the status operation selector. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>enum <a class="el" href="group__hardware__pio.html#ga356b3f4974cd31fdc4a2de381aceea5e" title="MOV status types.">pio_mov_status_type</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">status_n</td><td>parameter for the mov status operation (currently a bit count) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga1dbca28933c083592e6e359effe250bf" name="ga1dbca28933c083592e6e359effe250bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1dbca28933c083592e6e359effe250bf">&#9670;&nbsp;</a></span>sm_config_set_out_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_base</td><td>0-31 First pin to set as output </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gade3d072e319fc7d10bec180a9692ea89" name="gade3d072e319fc7d10bec180a9692ea89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade3d072e319fc7d10bec180a9692ea89">&#9670;&nbsp;</a></span>sm_config_set_out_pin_count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pin_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the number of 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf3004bbd996443d0c841664ebc92905c" name="gaf3004bbd996443d0c841664ebc92905c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3004bbd996443d0c841664ebc92905c">&#9670;&nbsp;</a></span>sm_config_set_out_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>out_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'out' pins in a state machine configuration. </p>
<p >'out' pins can overlap with the 'in', 'set' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">out_base</td><td>0-31 First pin to set as output </td></tr>
    <tr><td class="paramname">out_count</td><td>0-32 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga613bed03e10e569f1b7aede74d40a5b5" name="ga613bed03e10e569f1b7aede74d40a5b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga613bed03e10e569f1b7aede74d40a5b5">&#9670;&nbsp;</a></span>sm_config_set_out_shift()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>shift_right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>autopull</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>pull_threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Setup 'out' shifting parameters in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">shift_right</td><td>true to shift OSR to right, false to shift OSR to left </td></tr>
    <tr><td class="paramname">autopull</td><td>whether autopull is enabled </td></tr>
    <tr><td class="paramname">pull_threshold</td><td>threshold in bits to shift out before auto/conditional re-pulling of the OSR </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga8a9141ceadf9e735b1e96457865de3f6" name="ga8a9141ceadf9e735b1e96457865de3f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a9141ceadf9e735b1e96457865de3f6">&#9670;&nbsp;</a></span>sm_config_set_out_special()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_out_special </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>sticky</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>has_enable_pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>enable_pin_index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set special 'out' operations in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sticky</td><td>to enable 'sticky' output (i.e. re-asserting most recent OUT/SET pin values on subsequent cycles) </td></tr>
    <tr><td class="paramname">has_enable_pin</td><td>true to enable auxiliary OUT enable pin </td></tr>
    <tr><td class="paramname">enable_pin_index</td><td>pin index for auxiliary OUT enable </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga40d4807c0665d30ceab153b7444560eb" name="ga40d4807c0665d30ceab153b7444560eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga40d4807c0665d30ceab153b7444560eb">&#9670;&nbsp;</a></span>sm_config_set_set_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_base</td><td>0-31 First pin to set as </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga78e129fe383f2af0fc5e1448dea4c3d6" name="ga78e129fe383f2af0fc5e1448dea4c3d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78e129fe383f2af0fc5e1448dea4c3d6">&#9670;&nbsp;</a></span>sm_config_set_set_pin_count()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pin_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the count of 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gada1dff2c00b7d3a1cf722880c8373424" name="gada1dff2c00b7d3a1cf722880c8373424"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gada1dff2c00b7d3a1cf722880c8373424">&#9670;&nbsp;</a></span>sm_config_set_set_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_set_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>set_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'set' pins in a state machine configuration. </p>
<p >'set' pins can overlap with the 'in', 'out' and 'sideset' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">set_base</td><td>0-31 First pin to set as </td></tr>
    <tr><td class="paramname">set_count</td><td>0-5 Number of pins to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf543422206a8dbdc2efea85818dd650e" name="gaf543422206a8dbdc2efea85818dd650e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf543422206a8dbdc2efea85818dd650e">&#9670;&nbsp;</a></span>sm_config_set_sideset()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>bit_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>optional</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pindirs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'sideset' options in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">bit_count</td><td>Number of bits to steal from delay field in the instruction for use of side set (max 5) </td></tr>
    <tr><td class="paramname">optional</td><td>True if the topmost side set bit is used as a flag for whether to apply side set on that instruction </td></tr>
    <tr><td class="paramname">pindirs</td><td>True if the side set affects pin directions rather than values </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7abfda1f60c62565d5b13536b0605af7" name="ga7abfda1f60c62565d5b13536b0605af7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7abfda1f60c62565d5b13536b0605af7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pin_base()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset_pin_base </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>sideset_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the base of the 'sideset' pins in a state machine configuration. </p>
<p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sideset_base</td><td>0-31 base pin for 'side set' </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad55bf8b410fa1d13bd1bd020587e01d7" name="gad55bf8b410fa1d13bd1bd020587e01d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad55bf8b410fa1d13bd1bd020587e01d7">&#9670;&nbsp;</a></span>sm_config_set_sideset_pins()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_sideset_pins </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>sideset_base</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the 'sideset' pins in a state machine configuration. </p>
<p >This method is identical to <a class="el" href="group__sm__config.html#ga7abfda1f60c62565d5b13536b0605af7">sm_config_set_sideset_pin_base</a>, and is provided for backwards compatibility</p>
<p >'sideset' pins can overlap with the 'in', 'out' and 'set' pins</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">sideset_base</td><td>0-31 base pin for 'side set' </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gafb753e8b35bbea9209ca4399a845f89c" name="gafb753e8b35bbea9209ca4399a845f89c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb753e8b35bbea9209ca4399a845f89c">&#9670;&nbsp;</a></span>sm_config_set_wrap()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void sm_config_set_wrap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpio__sm__config.html">pio_sm_config</a> *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>wrap_target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&#160;</td>
          <td class="paramname"><em>wrap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the wrap addresses in a state machine configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>Pointer to the configuration structure to modify </td></tr>
    <tr><td class="paramname">wrap_target</td><td>the instruction memory address to wrap to </td></tr>
    <tr><td class="paramname">wrap</td><td>the instruction memory address after which to set the program counter to wrap_target if the instruction does not itself update the program_counter </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->

	<script src="main.js"></script>
</body>
</html>